home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / comm / fido / shelter191a.lha / docs / RFH.DOC < prev    next >
Text File  |  1994-07-27  |  8KB  |  236 lines

  1. ;$VER: RFH Doc The WPL Remote Freq Handler Function Host  Williamson  55.10
  2.  
  3.     RFH  is  an  Arexx  FunctionHost  version  of  the RFS WPL File Request
  4. Server.   RFH  is identical to RFS in most respects, but is a stripped down
  5. version  (about  1/2  the  size)  using  a  smaller  config file (about 1/3
  6. smaller).   The RFH.cfg config files is  read  only  when  RFH is loaded an
  7. dopens  a  port, or when the RFHCFG command is received.  The following RFS
  8. features and/or functions are not present in RFH.
  9.        
  10.     - all  support  of human requests removed
  11.     - Personal message  service removed.  
  12.     - FirstCall text removed
  13.     - Header text removed
  14.     - Tail text removed
  15.     - Debug and Vebose output removed
  16.     - config file format different
  17.  
  18.     RFH  processes requests approximately twenty times faster than RFS.  It
  19. supports  file  descriptions in FileNote format, and in DLG, TransAmiga and
  20. Excelsior BBS formats.
  21.  
  22.     Compiling:
  23.     RFH may be compiled with the following command line:
  24.  
  25.         RexxPlus Mail:rexx/RFH.rexx +UL(xferq.library,0,-30,0) +BS -MW +VE
  26.  
  27.     Rename RPDIR:RFH.rexx to RFH.
  28.  
  29.  Configuration:
  30.  
  31.     Nodelist flag should be set to XX.
  32.  
  33.     All  configuration  options  are  documented  in CFG:RFH.cfg.  The only
  34. other  external  file  required  is the xfreqsh compatible list of freqable
  35. files.
  36.  
  37.  Freq list:
  38.     The freq list is in the format:
  39.     request_name [!password] fullpathname
  40.  
  41.     RFSfreqlist.rexx,  Wfilelist.rexx  and  Falcon  FileMGR.rexx all create
  42. such  a  list,  with password, magic name and auto fullpath update support.
  43. Other  xfreqsh  freq  list  creators  such  as  GKupload  and others may be
  44. compliant also.
  45.  
  46.     For DLG systems, this script by Denis Turcotte creates the freq list:
  47.  
  48.  List File:(?|??|???|????)/~(enterarea.txt|POINTERS.FILE|User.file|.info|*.fd|File.dat) FILES NOHEAD LFORMAT "%N %F%N" to t:flist
  49.  sort t:flist t:flist
  50.  join cfg:magic.lst t:flist as cfg:FREQ.LST
  51.  delete t:flist QUIET
  52.  
  53.  Update Requests:
  54.  
  55.     The  FTS-0006  update  request  specification was written, as with most
  56. other  FTSs,  to  document  existing  practice  with  a particular piece of
  57. software.   However,  it  is  obviously  NOT  user friendly, as it requires
  58. conversion  between  'human'  time  and  unix  time.   While this is easily
  59. accomplished  by  programs which create .REQ files, it is not so simple for
  60. people who write them manually.
  61.  
  62.     Therefore, it was proposed that a new "UPDATE" type be implemented that
  63. can  be  used  by humans.  QuickSilver and FreqMate now include support for
  64. this format.
  65.  
  66.     This is SIMPLY: 
  67.             +/-Uyymmdd[hhmmss]
  68.     Where the time is optional and GMT offset is NOT taken into account.
  69.  
  70.     Both forms (date and datetime) are accepted by RFS.
  71.  
  72.     It  has  been suggested in the NET_DEV echo that the Nodelist FLAG "XU"
  73. be used to indicate this type of update request handling.
  74.  
  75.     In  addition,  FTS-0006  standard  unix  timestamp  update requests are
  76. processed.
  77.  
  78.  WildCards and Magic Request Names:
  79.     
  80.     RFH  can  use  AmigaDOS  pattern matching facilities.  This SHOULD mean
  81. that all pattern matching specifications should work, although this has NOT
  82. been tested.  This also means that the underscore bug of AmigaDOS's pattern
  83. matching  unfortunately affects operations.  If a fullpath name contains an
  84. underscore  preceeding  the  PATTERN,  it  may  be  considered  a  match by
  85. AmigaDOS.
  86.  
  87.     Two configuration options affect how wildcards are processed:
  88.         MatchFirst  - if TRUE, only the first file matching is sent
  89.         MultiMagic  - if TRUE, multiple files are send for MAGIC names
  90.  
  91.     
  92.     Startup:
  93.  
  94.     RFH  is  launched during mailer slave (modemline) startup, one port for
  95. each line that will accept file requests.
  96.  
  97.         RUN >NIL: RX RFH WPL_Application_Basename line
  98.             or
  99.         RUN >NIL RPDIR:RFH WPL_Application_Basename line
  100.     
  101.     where:
  102.         WPL_Application_Basename  - WSC-0004 compliant wpl-application
  103.                                     basename in lowercase.
  104.         line                      - the modem line
  105.  
  106.         eg:
  107.             RUN >NIL RFH porticus 2
  108.  
  109.  
  110.     Arexx Commands:
  111.  
  112.         Arexx Port name:  RFH$(line)
  113.     
  114.     The RFH ports commands:
  115.  
  116.         REQ         -   process a file request
  117.  
  118.         RFHCFG      -   re-reads RAM:RFH.CFG
  119.                     -   This will be executed when GenMailer is run with
  120.                         'Opt CONFIG'
  121.                     -   Can also be run from CLI
  122.                         RX "Address RFH2 RFHCFG"
  123.  
  124.         RFHEXIT     -   exits
  125.                         To close down an RFH port:
  126.                         Rx "Address RFH3 RFHEXIT"
  127.  
  128.  
  129.     Request Processing:
  130.  
  131.     REQ baud host reqfile listed remoteaddress remotesysop
  132.     
  133.         Baud            - modem<>modem bps
  134.         host            - our 5d Address for this session
  135.         reqfile         - fullpathname of file request to be processed
  136.         listed          - caller is in nodelist or site cache
  137.         remoteaddress   - 5D callers address
  138.         remotesysop     - callers names (nodelist, cache or emsi data)
  139.  
  140.     example mailer call:
  141.     RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile)
  142.                         $(listed) $(remote.address) $(remote.sysop)"
  143.  
  144.  
  145.  
  146.  
  147.     RFH Installation for JamMail:
  148.  
  149.         JamMail does not support any direct WPL file request handlers other
  150. than  XfreqSH,  so  to  use  RFH  you  will  have to Edit your jammail.wpl.
  151. Perhaps  you  can  convince  James  McOrmond  to  add  support for RFH, the
  152. information herein should be sufficent in either case.
  153.  
  154.         After  configuring JamMail to use XfreqSh, find the following lines
  155. in the 'postinbound:' prodcedure:
  156.  
  157.     Set whatrun "Run $(xferqsh) >>$(freqlog) $(freqcfg) $(remfile) $(infile) \"$(Remote.Address)\" \"Received at $(baud) on ${$(Line).date} $<Time>\""
  158.     RexxMsg SY REXX "Address 'COMMAND' '$(whatrun)'"
  159.     Return
  160.  
  161.     As  far as I know, JamMail does not set any variable to indicate that a
  162. site  is  IN the nodelist or PhoneBook.  Therefore we will manually set the
  163. $(listed)  variable.   If there is such a variable in JamMail and it is set
  164. as a boolean (0 or 1) then substitute it for $(listed).  (and tell me about
  165. it so I can update this ;)
  166.  
  167.   replace the above code with either:
  168.     Set listed 1
  169.     RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) $(listed) $(remote.address) $(remote.sysop)"
  170.     Clear listed
  171.     Return
  172.  
  173.   or 
  174.  
  175.     RexxMsg FY RFH$(line) "REQ $(Baud) $(host.address) $(infile) 1 $(remote.address) $(remote.sysop)"
  176.     Return
  177.  
  178.     Now  find  each  'startup-' label (startup-1:, startup-2:  etc) and add
  179. the  following  just before the 'Jump slaveloop' instruction for each slave
  180. that will handle file requests:
  181.  
  182.     System "Run >NIL: Rx RFH jammail $(line)"
  183.  
  184.   or if you have compiled RFH.rexx:
  185.  
  186.     System "Run >NIL: RFH jammail $(line)"
  187.         
  188.     
  189.     To  have  the RFH ports close when the mailer exits, you have to find
  190. all code sections where a slave exit occurs.
  191.  
  192.     Find this piece of code in the 'WaitRing:'  procedure:
  193.  
  194.       Set RC $<abort>
  195.          FalseJump BangIt2
  196.          RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
  197.          ModemClose
  198.          Return
  199.  
  200.     Insert this before the 'Return'
  201.  
  202.     RexxMsg FY RFH$(line) "RFHEXIT"
  203.  
  204.     Find this section of code after 'NotBReakcNow2:'
  205.  
  206.    Set RC $<abort>
  207.    FalseJump WaitRing1
  208.       RexxMsg NY LOGPROC "PutLog JamMailLogs [$(Line)] $<Time> Line $(line) Exiting"
  209.       ModemClose
  210.       Return
  211.  
  212.     Insert this before the 'Return'
  213.  
  214.     RexxMsg FY RFH$(line) "RFHEXIT"
  215.  
  216.  
  217.     JamMail  does  not  follow  the  WSC  standards  in  respect to LogProc
  218. loggroup  names.   However, neither do any of the Shelter Mailers :) So you
  219. will have to edit RFH.rexx to change the loggroup name assignment
  220.  
  221.     from:
  222.         loggroup=lower(wplport)||'wpl'
  223.     to
  224.         loggroup=wplport||'Logs'
  225.  
  226.     As  far  as  I  know,  unlike  Shelter Mailers, JamMail does not have a
  227. facility for reconfiguration while running.  If you wish to add support for
  228. the RFHCFG command, please ask James to add support for slave
  229. unload/releoad.
  230.     You may still use the RFHCFG command with the following command line by
  231. directly addressing the RFH PORT.:
  232.  
  233.     Rx "Address RFH2 RFHCFG"
  234.  
  235.     This should do it.
  236.